bbaf099fb3804aa925a6f255eb51b8ce53b20925,src/com/redhat/ceylon/compiler/codegen/StatementTransformer.java,StatementTransformer,transform,#Tree.ForStatement#,214
Before Change
JCExpression step = at(stmt).Assign(iter_id, at(stmt).Apply(null, makeSelect(iter_id, Util.getGetterName("tail")), List.<JCExpression> nil()));
// $i$iter$1.getHead() != null;
JCExpression cond = at(stmt).Binary(JCTree.NE, iter_head, makeNull());
// for (.ceylon.language.Iterator<T> $V$iter$X = ITERABLE.iterator(); $V$iter$X.getHead() != null; $V$iter$X = $V$iter$X.getTail()) {
outer = outer.append(at(stmt).ForLoop(
After Change
// Watch out that we can't reuse tree bits in different locations, otherwise we break javac, since
// it will later on tag each tree bit while walking it and expects each node to be unique
// See https://github.com/ceylon/ceylon-compiler/issues/151
JCExpression iter_head2 = at(stmt).Apply(null, makeSelect(iter_id, Util.getGetterName("head")), List.<JCExpression> nil());
JCExpression cond = at(stmt).Binary(JCTree.NE, iter_head2, makeNull());
// for (.ceylon.language.Iterator<T> $V$iter$X = ITERABLE.iterator(); $V$iter$X.getHead() != null; $V$iter$X = $V$iter$X.getTail()) {
outer = outer.append(at(stmt).ForLoop(